<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/12/8
 * Time: 16:03
 */

namespace app\manage\admin;

use app\admin\controller\Admin;
use app\common\builder\ZBuilder;

// 引入ZBuilder
use app\common\model\Sms as SmsM;
use app\common\model\SmsRecharge as SmsRechargeM;
use app\common\model\SmsRechargeLog as SmsRechargeLogM;
use app\common\model\SmsSign as SmsSignM;
use think\Db;

class Sms extends Admin
{
    //短信列表
    public function lists()
    {
        $gqtime = time() - 900;
        SmsM::where('create_time', '<', $gqtime)->where('status', '1')->update(['status' => '0']);
        $map = $this->getMap();
        // 读取数据
        $data_list = SmsM::order('id desc')->where($map)->paginate(10);
        // 分页数据
        $page = $data_list->render();
        //短信类型
        $type = ['1' => '注册短信', '2' => '找回密码', '3' => '短信验证'];
        //设置页面
        return ZBuilder::make('table')
            ->hideCheckbox()
            ->addColumn('phone', '手机号码', 'text.edit')
            ->addColumn('code', '验证码', 'text.edit')
            ->addColumn('content', '短信内容', 'text.edit')
            ->addColumn('type', '请求类型', 'status', '', $type)
            ->addColumn('create_time', '发送日期', 'datetime', '', 'Y-m-d H:i:s')
            ->addColumn('status', '是否过期', 'status', '', ['0' => '过期', '1' => '可用', '2' => '已使用'])
            ->setColumnWidth([
                'phone' => 100,
                'code' => 100,
                'create_time' => 200,
                'type' => 100,
                'content' => 200,
            ])
            ->setTableName('qt_sms') // 指定数据表名
            ->setSearchArea([
                ['text:2', 'phone', '手机号码', 'eq'],
                ['select:2', 'type', '请求类型', 'eq', '', $type],
                ['select:2', 'status', '是否过期', 'eq', '', ['0' => '过期', '1' => '可用']],
            ])
            ->setPrimaryKey('id') // 设置主键名为username
            ->setPageTitle('短信记录列表')
            ->setRowList($data_list) // 设置表格数据
            ->setPages($page) // 设置分页数据
            ->fetch();
    }

    /**
     * 短信充值模板
     */
    public function recharge_list()
    {
        // 读取数据
        $map = $this->getMap();
        // 排序
        $order = $this->getOrder();
        // 数据列表
        $btn_access = [
            'title' => '新增充值模板',
            'icon' => 'fa fa-fw fa-plus',
            'class' => 'btn btn-info',
            'href' => url('recharge_add'),
        ];
        $data_list = Db::name('qt_sms_recharge')->where($map)
            ->order($order)
            ->paginate();
        // 分页数据
        $page = $data_list->render();

        $btn_access1 = [
            'title' => '编辑充值模板',
            'icon' => 'fa fa-fw fa-pencil',
            'class' => 'btn btn-xs btn-default',
            'href' => url('recharge_edit', ['id' => '__id__']),
        ];
        $btn_access2 = [
            'title' => '删除充值模板',
            'icon' => 'fa fa-fw fa-trash-o',
            'class' => 'btn btn-xs btn-default',
            'href' => url('recharge_delete', ['id' => '__id__']),
        ];
        //dump($this->roomType);die;
        //设置页面
        return ZBuilder::make('table')
            ->hideCheckbox()
            ->addColumn('id', '编号', 'text')
            ->addColumn('price', '充值金额', 'text')
            ->addColumn('number', '赠送条数', 'text')
            ->addColumn('sort', '排序', 'text')
            ->addColumn('create_time', '创建时间', 'datetime', '', 'Y-m-d H:i')
            ->addColumn('right_button', '操作', 'btn')
            ->addTopButton('add', $btn_access)// 添加顶部按钮
            ->addRightButton('edit', $btn_access1)// 添加右侧按钮
            ->addRightButton('delete', $btn_access2)// 添加右侧按钮
            ->setPrimaryKey('id')// 设置主键名为username
            ->setPageTitle('充值模板列表')
            ->setRowList($data_list)// 设置表格数据
            ->setPages($page)// 设置分页数据
            ->fetch();
    }


    //添加充值模板
    public function recharge_add()
    {
        //判断是否提交信息
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            if (empty($data['price'])) {
                $this->error('请填写充值金额');
            }
            if (empty($data['number'])) {
                $this->error('请填写赠送条数');
            }
            $data['create_time'] = time();
            if (SmsRechargeM::create($data)) {
                $this->success('新增成功', 'recharge_list');
            } else {
                $this->error('新增失败');
            }
        } else {

            return ZBuilder::make('form')
                ->addFormItems(
                    [
                        ['text:7', 'price', '充值金额'],
                        ['text:7', 'number', '赠送条数'],
                        ['text:7', 'sort', '排序', '<code>排序1-100，越小越靠前</code>', '50'],
                    ]
                )
                ->setPageTitle('添加充值模板')
                ->fetch();
        }
    }

    //编辑充值模板
    public function recharge_edit($id = null)
    {
        //判断是否提交信息
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            // 验证
            if (empty($data['price'])) {
                $this->error('请填写充值金额');
            }
            if (empty($data['number'])) {
                $this->error('请填写赠送条数');
            }
            if (SmsRechargeM::update($data)) {
                $this->success('编辑成功', 'recharge_list');
            } else {
                $this->error('编辑失败');
            }
        } else {
            $info = SmsRechargeM::get($id);
            return ZBuilder::make('form')
                ->addFormItems(
                    [
                        ['hidden', 'id', 'id'],
                        ['text:7', 'price', '充值金额'],
                        ['text:7', 'number', '赠送条数'],
                        ['text:7', 'sort', '排序', '<code>排序1-100，越小越靠前</code>', '50'],
                    ]
                )
                ->setFormData($info)
                ->setPageTitle('编辑充值模板')
                ->fetch();
        }
    }

    //删除充值模板
    public function recharge_delete($id = null)
    {
        if ($id === null) $this->error('缺少参数');
        $re = SmsRechargeM::destroy($id);//
        if ($re) {
            $this->success('删除成功', 'index');
        } else {
            $this->error('系统繁忙请稍后再试', 'index');
        }

    }


    /**
     * 短信充值模板
     */
    public function log_list()
    {
        // 读取数据
        $map = $this->getMap();
        // 排序
        $order = $this->getOrder();
        // 数据列表
//        $btn_access = [
//            'title' => '新增',
//            'icon' => 'fa fa-fw fa-plus',
//            'class' => 'btn btn-info',
//            'href' => url('recharge_add'),
//        ];
        $data_list = Db::name('qt_sms_recharge_log')->where($map)
            ->field('l.*,s.name')
            ->alias('l')
            ->leftJoin('qt_store s','s.id = l.store_id')
            ->order($order)
            ->paginate();
        // 分页数据
        $page = $data_list->render();
        $btn_access1 = [
            'title' => '编辑充值记录',
            'icon' => 'fa fa-fw fa-pencil',
            'class' => 'btn btn-xs btn-default',
            'href' => url('log_edit', ['id' => '__id__']),
        ];
//        $btn_access2 = [
//            'title' => '删除充值模板',
//            'icon' => 'fa fa-fw fa-trash-o',
//            'class' => 'btn btn-xs btn-default',
//            'href' => url('recharge_delete', ['id' => '__id__']),
//        ];
        //dump($this->roomType);die;
        $store_name = Db::name('qt_store')->column('name','id');
        //设置页面
        return ZBuilder::make('table')
            ->hideCheckbox()
            ->addColumn('id', '编号', 'text')
            ->addColumn('name', '门店', 'text')
            ->addColumn('order_no', '订单号', 'text')
            ->addColumn('price', '金额', 'text')
            ->addColumn('number', '购买条数', 'text')
            ->addColumn('give_number', '赠送条数', 'text')
            ->addColumn('pay_type', '支付方式', 'status','',['1'=>"未支付:danger",'2'=>'已支付:success'])
            ->addColumn('content', '备注', 'text')
            ->addColumn('create_time', '创建时间', 'datetime', '', 'Y-m-d H:i')
            ->addColumn('right_button', '操作', 'btn')
            ->setSearchArea([
                ['select:2', 's.id', '门店名称', 'eq', '', $store_name],
                ['select:2', 'l.pay_type', '支付状态','eq','',['1'=>'未支付','2'=>'已支付']],
                ['daterange:3', 'l.create_time', '创建时间'],

                //['text:2', 'w.name', '考勤班次', 'like'],
            ])
            //->addTopButton('add', $btn_access)// 添加顶部按钮
            ->addRightButton('edit', $btn_access1)// 添加右侧按钮
            //->addRightButton('delete', $btn_access2)// 添加右侧按钮
            ->setPrimaryKey('id')// 设置主键名为username
            ->setPageTitle('短信充值记录')
            ->setRowList($data_list)// 设置表格数据
            ->setPages($page)// 设置分页数据
            ->fetch();
    }


    //编辑充值模板
    public function log_edit($id = null)
    {
        //判断是否提交信息
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            // 验证
            if (SmsRechargeLogM::update($data)) {
                $this->success('编辑成功', 'log_list');
            } else {
                $this->error('编辑失败');
            }
        } else {
            $info = SmsRechargeLogM::get($id);
            return ZBuilder::make('form')
                ->addFormItems(
                    [
                        ['hidden', 'id', 'id'],
                        ['text:7', 'order_no', '订单号'],
                        ['text:7', 'price', '充值金额'],
                        ['text:7', 'number', '购买条数'],
                        ['text:7', 'give_number', '赠送条数'],
                        ['text:7', 'content', '备注'],
                    ]
                )
                ->setFormData($info)
                ->setPageTitle('编辑充值模板')
                ->fetch();
        }
    }


    /**
     * 短信充值签名
     */
    public function sign_list()
    {
        // 读取数据
        $map = $this->getMap();
        // 排序
        $order = $this->getOrder();
        // 数据列表
        $btn_access = [
            'title' => '新增短信签名',
            'icon' => 'fa fa-fw fa-plus',
            'class' => 'btn btn-info',
            'href' => url('sign_add'),
        ];
        $data_list = Db::name('qt_sms_sign')->where($map)
            ->field('sg.*,s.name as store_name')
            ->alias('sg')
            ->leftJoin('qt_store s','s.id = sg.store_id')
            ->order($order)
            ->paginate();
        // 分页数据
        $page = $data_list->render();

        $btn_access1 = [
            'title' => '编辑短信签名',
            'icon' => 'fa fa-fw fa-pencil',
            'class' => 'btn btn-xs btn-default',
            'href' => url('sign_edit', ['id' => '__id__']),
        ];
        $btn_access2 = [
            'title' => '删除短信签名',
            'icon' => 'fa fa-fw fa-trash-o',
            'class' => 'btn btn-xs btn-default',
            'href' => url('sign_delete', ['id' => '__id__']),
        ];
        //dump($this->roomType);die;
        //设置页面
        return ZBuilder::make('table')
            ->hideCheckbox()
            ->addColumn('id', '编号', 'text')
            ->addColumn('store_name', '门店', 'text')
            ->addColumn('name', '短信签名', 'text')
            ->addColumn('status', '状态', 'status','',['1'=>'显示:success','2'=>'隐藏:danger'])
            ->addColumn('create_time', '创建时间', 'datetime', '', 'Y-m-d H:i')
            ->addColumn('right_button', '操作', 'btn')
            ->addTopButton('add', $btn_access)// 添加顶部按钮
            ->addRightButton('edit', $btn_access1)// 添加右侧按钮
            ->addRightButton('delete', $btn_access2)// 添加右侧按钮
            ->setPrimaryKey('id')// 设置主键名为username
            ->setPageTitle('短信签名列表')
            ->setRowList($data_list)// 设置表格数据
            ->setPages($page)// 设置分页数据
            ->fetch();
    }


    //添加充值签名
    public function sign_add()
    {
        //判断是否提交信息
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            if (empty($data['name'])) {
                $this->error('请填写短信签名');
            }
            $data['create_time'] = time();
            if (SmsSignM::create($data)) {
                $this->success('新增成功', 'sign_list');
            } else {
                $this->error('新增失败');
            }
        } else {
            $store_name = Db::name('qt_store')->column('name','id');
            return ZBuilder::make('form')
                ->addFormItems(
                    [
                        ['select:7', 'store_id', '门店','',$store_name],
                        ['text:7', 'name', '短信签名','<code>三到五个字，一般为门店简称</code>'],
                        ['radio:7', 'status', '状态','',['1'=>'显示','2'=>'禁用'],'1'],
                    ]
                )
                ->setPageTitle('添加充值模板')
                ->fetch();
        }
    }

    //编辑充值签名
    public function sign_edit($id = null)
    {
        //判断是否提交信息
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            // 验证
            if (empty($data['name'])) {
                $this->error('请填写短信签名');
            }
            if (SmsRechargeM::update($data)) {
                $this->success('编辑成功', 'sign_list');
            } else {
                $this->error('编辑失败');
            }
        } else {
            $info = SmsSignM::get($id);
            $store_name = Db::name('qt_store')->column('name','id');
            return ZBuilder::make('form')
                ->addFormItems(
                    [
                        ['hidden', 'id', 'id'],
                        ['select:7', 'store_id', '门店','',$store_name],
                        ['text:7', 'name', '短信签名','<code>三到五个字，一般为门店简称</code>'],
                        ['radio:7', 'status', '状态','',['1'=>'显示','2'=>'禁用']],
                    ]
                )
                ->setFormData($info)
                ->setPageTitle('编辑短信签名')
                ->fetch();
        }
    }

    //删除充值签名
    public function sign_delete($id = null)
    {
        if ($id === null) $this->error('缺少参数');
        $re = SmsSignM::destroy($id);//
        if ($re) {
            $this->success('删除成功', 'index');
        } else {
            $this->error('系统繁忙请稍后再试', 'index');
        }

    }



}